using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Hmw;
using net_work.Data.Entity.Hmw;

namespace net_work.IService.Hmw;

public interface IQuestionAnswerSubmissionService
{
    /// <summary>
    /// 分页查询题目答案提交
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<QuestionAnswerSubmission>> GetQuestionAnswerSubmissionsPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据题目答案提交ID查询题目答案提交信息
    /// </summary>
    /// <param name="questionAnswerSubmissionId">题目答案提交ID</param>
    /// <returns>题目答案提交信息</returns>
    Task<QuestionAnswerSubmission?> SelectByIdAsync(long questionAnswerSubmissionId);

    /// <summary>
    /// 更新题目答案提交信息
    /// </summary>
    /// <param name="questionAnswerSubmissionUpdateRequest">更新题目答案提交信息</param>
    /// <returns>是否成功</returns>
    Task<long> UpdateQuestionAnswerSubmission(QuestionAnswerSubmissionUpdateRequest questionAnswerSubmissionUpdateRequest);

    /// <summary>
    /// 删除题目答案提交
    /// </summary>
    /// <param name="ids">题目答案提交ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteQuestionAnswerSubmissionByIds(List<long> ids);

    /// <summary>
    /// 提交
    /// </summary>
    /// <param name="questionAnswerSubmissionId">题目答案提交ID</param>
    /// <returns>是否成功</returns>
    Task<int> Submit(long questionAnswerSubmissionId);
}